package cn.iocoder.yudao.module.crm.controller.admin.customerbill.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 客户账单 Response VO")
@Data
@ExcelIgnoreUnannotated
public class CustomerBillRespVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10756")
    //@ExcelProperty("id")
    private Long id;

    @Schema(description = "price_id", example = "5958")
    //@ExcelProperty("price_id")
    private Long priceId;

    @Schema(description = "customer_id", requiredMode = Schema.RequiredMode.REQUIRED, example = "18916")
    //@ExcelProperty("customer_id")
    private Long customerId;

    //@ExcelProperty(value = {"序号", "日期","船公司代码","订单号","柜型","柜型数量","船公司费","码头费用","手续费","总费用","备注"},index = 0)
    private String customerName;

    @ExcelProperty(value = {"序号"},index = 0)
    private String indexNo;

    @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty(value={"日期"},index = 1)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate billDate;

    @Schema(description = "船公司代码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty(value={ "船公司代码"},index = 2)
    private String companyCode;

    @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty(value={ "订单号"},index = 3)
    private String orderNo;

    @Schema(description = "柜型", example = "2")
    @ExcelProperty(value={"柜型"},index = 4)
    private String containerType;

    @Schema(description = "柜型数量", example = "32394")
    @ExcelProperty(value={"柜型数量"},index = 5)
    private Integer containerCount;

    @Schema(description = "船公司费")
    @ExcelProperty(value={"船公司费"},index = 6)
    private BigDecimal shipFee;

    @Schema(description = "码头费用")
    @ExcelProperty(value={"码头费用"},index = 7)
    private BigDecimal dockFee;

    @Schema(description = "手续费")
    @ExcelProperty(value={"手续费"},index = 8)
    private BigDecimal serviceFee;

    @Schema(description = "总费用")
    @ExcelProperty(value={"总费用"},index = 9)
    private BigDecimal totalFee;

    @Schema(description = "备注", example = "你说的对")
    @ExcelProperty(value={"备注"},index = 10)
    private String remark;


    @Schema(description = "账单状态 1-待支付，2-已支付", example = "2")
    //@ExcelProperty("账单状态 1-待支付，2-已支付")
    private Integer billStatus;

    @Schema(description = "支付日期")
   // @ExcelProperty("支付日期")
    private LocalDateTime payTime;

    @Schema(description = "船公司名称", example = "赵六")
    //@ExcelProperty("船公司名称")
    private String companyName;

    @Schema(description = "创建时间")
    //@ExcelProperty("创建时间")
    private LocalDateTime createTime;


    @Schema(description = "船公司费")
    private BigDecimal shipFeeUnit;

    @Schema(description = "码头费用")
    private BigDecimal dockFeeUnit;

    @Schema(description = "手续费")
    private BigDecimal serviceFeeUnit;

}
